home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / plaf / basic / BasicMenuBarUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  4.5 KB  |  123 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Dimension;
  4. import java.awt.event.ContainerListener;
  5. import java.beans.PropertyChangeListener;
  6. import javax.swing.AbstractButton;
  7. import javax.swing.JComponent;
  8. import javax.swing.JMenu;
  9. import javax.swing.JMenuBar;
  10. import javax.swing.KeyStroke;
  11. import javax.swing.LookAndFeel;
  12. import javax.swing.event.ChangeListener;
  13. import javax.swing.plaf.ComponentUI;
  14. import javax.swing.plaf.MenuBarUI;
  15. import javax.swing.plaf.UIResource;
  16.  
  17. public class BasicMenuBarUI extends MenuBarUI {
  18.    protected JMenuBar menuBar = null;
  19.    protected ContainerListener containerListener;
  20.    protected ChangeListener changeListener;
  21.    private PropertyChangeListener propertyChangeListener;
  22.  
  23.    protected ChangeListener createChangeListener() {
  24.       return new ChangeHandler(this);
  25.    }
  26.  
  27.    protected ContainerListener createContainerListener() {
  28.       return new ContainerHandler(this);
  29.    }
  30.  
  31.    private PropertyChangeListener createPropertyChangeListener() {
  32.       return new PropertyChangeHandler(this);
  33.    }
  34.  
  35.    public static ComponentUI createUI(JComponent var0) {
  36.       return new BasicMenuBarUI();
  37.    }
  38.  
  39.    public Dimension getMaximumSize(JComponent var1) {
  40.       return null;
  41.    }
  42.  
  43.    public Dimension getMinimumSize(JComponent var1) {
  44.       return null;
  45.    }
  46.  
  47.    public Dimension getPreferredSize(JComponent var1) {
  48.       return null;
  49.    }
  50.  
  51.    protected void installDefaults() {
  52.       if (this.menuBar.getLayout() == null || this.menuBar.getLayout() instanceof UIResource) {
  53.          if (BasicGraphicsUtils.isLeftToRight(this.menuBar)) {
  54.             this.menuBar.setLayout(new DefaultMenuLayout(this.menuBar, 0));
  55.          } else {
  56.             this.menuBar.setLayout(new RightToLeftMenuLayout((1)null));
  57.          }
  58.       }
  59.  
  60.       this.menuBar.setOpaque(true);
  61.       LookAndFeel.installBorder(this.menuBar, "MenuBar.border");
  62.       LookAndFeel.installColorsAndFont(this.menuBar, "MenuBar.background", "MenuBar.foreground", "MenuBar.font");
  63.    }
  64.  
  65.    protected void installKeyboardActions() {
  66.       this.menuBar.registerKeyboardAction(new TakeFocus(this.menuBar), KeyStroke.getKeyStroke(121, 0, false), 2);
  67.    }
  68.  
  69.    protected void installListeners() {
  70.       this.containerListener = this.createContainerListener();
  71.       this.changeListener = this.createChangeListener();
  72.       this.propertyChangeListener = this.createPropertyChangeListener();
  73.  
  74.       for(int var1 = 0; var1 < this.menuBar.getMenuCount(); ++var1) {
  75.          JMenu var2 = this.menuBar.getMenu(var1);
  76.          if (var2 != null) {
  77.             ((AbstractButton)var2).getModel().addChangeListener(this.changeListener);
  78.          }
  79.       }
  80.  
  81.       this.menuBar.addContainerListener(this.containerListener);
  82.       this.menuBar.addPropertyChangeListener(this.propertyChangeListener);
  83.    }
  84.  
  85.    public void installUI(JComponent var1) {
  86.       this.menuBar = (JMenuBar)var1;
  87.       this.installDefaults();
  88.       this.installListeners();
  89.       this.installKeyboardActions();
  90.    }
  91.  
  92.    protected void uninstallDefaults() {
  93.       LookAndFeel.uninstallBorder(this.menuBar);
  94.    }
  95.  
  96.    protected void uninstallKeyboardActions() {
  97.       this.menuBar.unregisterKeyboardAction(KeyStroke.getKeyStroke(121, 0, false));
  98.    }
  99.  
  100.    protected void uninstallListeners() {
  101.       this.menuBar.removeContainerListener(this.containerListener);
  102.       this.menuBar.removePropertyChangeListener(this.propertyChangeListener);
  103.  
  104.       for(int var1 = 0; var1 < this.menuBar.getMenuCount(); ++var1) {
  105.          JMenu var2 = this.menuBar.getMenu(var1);
  106.          if (var2 != null) {
  107.             ((AbstractButton)var2).getModel().removeChangeListener(this.changeListener);
  108.          }
  109.       }
  110.  
  111.       this.containerListener = null;
  112.       this.changeListener = null;
  113.       this.propertyChangeListener = null;
  114.    }
  115.  
  116.    public void uninstallUI(JComponent var1) {
  117.       this.uninstallDefaults();
  118.       this.uninstallListeners();
  119.       this.uninstallKeyboardActions();
  120.       this.menuBar = null;
  121.    }
  122. }
  123.